/**
 * Created by heimi on 14-9-9.
 */
function paginate(page, total) {
    if (total >= 10) {
        $('.pagination .page').hide();
        $('.pagination .page').eq(0).show();
        $('.pagination .page').eq(total - 1).show();
        if (page <= 4) {
            $('.pagination span').eq(0).hide();
            $('.pagination span').eq(1).show();
            $('.pagination .page').eq(page - 1).show().prevAll('.page').show();
            $('.pagination .page').eq(page).show();
            $('.pagination .page').eq(page + 1).show();
        }
        else if (page > 4 && page <= total - 3) {
            $('.pagination span').show();
            $('.pagination .page').eq(page - 2).show();
            $('.pagination .page').eq(page - 1).show();
            $('.pagination .page').eq(page).show();
        } else {
            $('.pagination span').eq(1).hide();
            $('.pagination span').eq(0).show();
            $('.pagination .page').eq(page - 1).show().nextAll('.page').show();
            $('.pagination .page').eq(page - 2).show();
            $('.pagination .page').eq(page - 3).show();
        }
    }
    $('.pagination .page').eq(page - 1).addClass('active').siblings().removeClass('active');
}

function moreData(result, pageNum, callback) {
    var page = result.data;
    if (page == null) {
        $('#content').html("暂无数据");
        $("#pageDiv").html("");
    } else {
        var data = page.content;

        if (data.length == 0) {
            $('#content').html("暂无数据");
            $("#pageDiv").html("");
            return;
        }
        page.current = eval(page.number);

        if (!page.last) {
            page.nextNum = eval(page.current + 1 + 1);
        }

        if (!page.first) {
            page.prevNum = eval(page.current + 1 - 1);
        }
        if (page.totalPages === 0) return $("#pageDiv").html('');

        var morePageHtml = "<ul class='pagination'>";
        morePageHtml += '<li class="disabled"><a>共' + page.totalElements + '条记录</a></li>';
        if (!page.first) {
            morePageHtml += '<li><a class="prev_page" href="javascript:void(0)">上一页</a></li>';
            if ($("#front_prev_page")) {
                $("#front_prev_page").removeClass("disabled").addClass("prev_page").unbind("click");
            }
        } else {
            morePageHtml += '<li class="disabled"><a>上一页</a></li>';
            if ($("#front_prev_page")) {
                $("#front_prev_page").removeClass("prev_page").addClass("disabled").unbind("click");
            }
        }
        var i = 1;
        if (page.totalPages < 10) {
            for (; i <= page.totalPages; i++) {
                if (i == page.number + 1) {
                    morePageHtml += '<li class="active page"><a href="javascript:;" class="page_' + i + '" href="javascript:void(0)">' + i + '</a></li>';
                } else {
                    morePageHtml += '<li class="page"><a href="javascript:;" class="page_' + i + '" href="javascript:void(0)">' + i + '</a></li>';
                }
            }
        } else {
            for (; i <= page.totalPages; i++) {
                morePageHtml += "<li class='page'><a href='javascript:;'>" + i + "</a></li>";
                if (i == 1 || i == page.totalPages - 1) {
                    morePageHtml += "<li><span>...</span></li>";
                }
            }
        }
        if (!page.last) {
            morePageHtml += '<li><a class="next_page" href="javascript:void(0)">下一页</a></li>';
            if ($("#front_next_page")) {
                $("#front_next_page").removeClass("disabled").addClass("next_page").unbind("click");
            }
        } else {
            morePageHtml += '<li class="disabled"><a>下一页</a></li>';
            if ($("#front_next_page")) {
                $("#front_next_page").removeClass("next_page").addClass("disabled").unbind("click");
            }
        }
        morePageHtml += '<li><span>共' + page.totalPages + '页,去第 <input class="ui-page-skipTo go_page_num" type="text" value=""/> 页</span></li>';
        morePageHtml += '<li><a class="go_page" href="javascript:void(0)">跳转</a></li>';
        morePageHtml += '</ul>';
        $("#pageDiv").html(morePageHtml);
        paginate(pageNum, page.totalPages);
        $(".page", '.pagination').unbind("click").click(function () {
            moreData($("#searchForm"), parseInt($(this).text(), 10), false, callback);
        });
        if (!page.first) {
            $(".first_page").unbind("click").click(function () {
                moreData($("#searchForm"), 1, false);
            });
            $(".prev_page").unbind("click").click(function () {
                moreData($("#searchForm"), page.prevNum, false);
            });
        }

        if (!page.last) {
            $(".next_page").unbind("click").click(function () {
                moreData($("#searchForm"), page.nextNum, false);
            });
            $(".last_page").unbind("click").click(function () {
                moreData($("#searchForm"), page.totalPages, false);
            });
        }

        $(".go_page").unbind("click").click(function () {
            var goNum = parseInt($(".go_page_num").val(), 10);
            goNum = isNaN(goNum) ? 1 : goNum;
            moreData($("#searchForm"), goNum, false);
        });

        if (callback) {
            callback();
        }
    }
}
